-- *****************************************************************
-- Juniper-SDX-CHASSIS-MIB
--
-- Juniper Networks Inc.
-- Juniper Management Center MIB
--
-- Copyright (c) 2007 Juniper Networks, Incorporated.
-- All Rights Reserved.
--
-- *****************************************************************

Juniper-SDX-CHASSIS-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY,
    OBJECT-TYPE,
    Integer32,
    IpAddress,
    Unsigned32,
    TimeTicks,
    Counter32,
    Gauge32
        FROM SNMPv2-SMI

    TruthValue,
    DisplayString
        FROM SNMPv2-TC

    MODULE-COMPLIANCE,
    OBJECT-GROUP
        FROM SNMPv2-CONF

    juniSdxMibs 
        FROM Juniper-SDX-MIBS;

juniSdxChassis MODULE-IDENTITY
    LAST-UPDATED "200804151100Z"  -- 15-Apr-08

    ORGANIZATION "Juniper Networks, Inc."
    CONTACT-INFO
        "        Juniper Technical Assistance Center
                 Juniper Networks, Inc.
                 1194 N. Mathilda Avenue
                 Sunnyvale, CA 94089
                 E-mail: support@juniper.net"
    DESCRIPTION
            "The MIB modules representing Juniper Networks'
            implementation of enterprise specific MIBs 
            supported by a single SNMP agent."

    REVISION "200804151100Z"  -- 15-Apr-08
    DESCRIPTION
    "Added juniSdxOperatingIntValue object"

    REVISION "200706151300Z"  -- 15-Jun-07
    DESCRIPTION
    "First version."

    ::= { juniSdxMibs 13 }


-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- MIB Structure
-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

juniSdxChassisObjects       OBJECT IDENTIFIER ::= { juniSdxChassis 1 }
-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- C-series Chassis Operating Table
-- This table reveals some the operating status of some subjects 
-- of interest in the chassis.
-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

juniSdxOperatingTable OBJECT-TYPE
    SYNTAX              SEQUENCE OF JuniSdxOperatingEntry
    MAX-ACCESS          not-accessible
    STATUS              current
    DESCRIPTION
        "A list of operating status entries."
    ::= { juniSdxChassisObjects 1 }

juniSdxOperatingEntry OBJECT-TYPE
    SYNTAX              JuniSdxOperatingEntry
    MAX-ACCESS          not-accessible
    STATUS              current
    DESCRIPTION
        "An entry of operating status table."
    INDEX       { juniSdxOperatingIndex }
    ::= { juniSdxOperatingTable 1 }

JuniSdxOperatingEntry ::= SEQUENCE {
    juniSdxOperatingIndex           Integer32,
    juniSdxOperatingLocation        DisplayString,
    juniSdxOperatingSensor          DisplayString,
    juniSdxOperatingValue           DisplayString,
    juniSdxOperatingUnits           DisplayString,
    juniSdxOperatingStatus          DisplayString,
    juniSdxOperatingIntValue        Integer32
}

juniSdxOperatingIndex OBJECT-TYPE
    SYNTAX              Integer32 (1..'7fffffff'h)
    MAX-ACCESS          read-only
    STATUS              current
    DESCRIPTION
        "The index of juniSdxOperatingTable."
    ::= { juniSdxOperatingEntry 1 }


juniSdxOperatingLocation OBJECT-TYPE
    SYNTAX              DisplayString
    MAX-ACCESS          read-only
    STATUS              current
    DESCRIPTION
        "The location of the corresponding sensor."
    ::= { juniSdxOperatingEntry 2 }

juniSdxOperatingSensor OBJECT-TYPE
    SYNTAX              DisplayString
    MAX-ACCESS          read-only
    STATUS              current
    DESCRIPTION
        "The sensor name, which is usually the name of component that the sensor is monitoring."
    ::= { juniSdxOperatingEntry 3 }

juniSdxOperatingValue OBJECT-TYPE
    SYNTAX              DisplayString
    MAX-ACCESS          read-only
    STATUS              current
    DESCRIPTION
        "The sensor value."
    ::= { juniSdxOperatingEntry 4 }

juniSdxOperatingUnits OBJECT-TYPE
    SYNTAX              DisplayString
    MAX-ACCESS          read-only
    STATUS              current
    DESCRIPTION
        "The units of the corresponding sensor."
    ::= { juniSdxOperatingEntry 5 }

juniSdxOperatingStatus OBJECT-TYPE
    SYNTAX              DisplayString
    MAX-ACCESS          read-only
    STATUS              current
    DESCRIPTION
        "The operating status of the component being monitored by the sensor."
    ::= { juniSdxOperatingEntry 6 }

juniSdxOperatingIntValue OBJECT-TYPE
    SYNTAX              Integer32
    MAX-ACCESS          read-only
    STATUS              current
    DESCRIPTION
        "The sensor value in integer."
    ::= { juniSdxOperatingEntry 7 }
-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- C-series Disk Table
-- This table reveals some information about C-series hard disk.
-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

juniSdxDiskTable OBJECT-TYPE
    SYNTAX              SEQUENCE OF JuniSdxDiskEntry
    MAX-ACCESS          not-accessible
    STATUS              current
    DESCRIPTION
        "A list of C-series disk status entries."
    ::= { juniSdxChassisObjects 2 }

juniSdxDiskEntry OBJECT-TYPE
    SYNTAX              JuniSdxDiskEntry
    MAX-ACCESS          not-accessible
    STATUS              current
    DESCRIPTION
        "An entry of C-series disk table."
    INDEX       { juniSdxDiskChannel,
                  juniSdxDiskId,
                  juniSdxDiskLogicalUnit}
    ::= { juniSdxDiskTable 1 }

JuniSdxDiskEntry ::= SEQUENCE {
    juniSdxDiskChannel                  Integer32,
    juniSdxDiskId                       Integer32,
    juniSdxDiskLogicalUnit              Integer32,
    juniSdxDiskSize                     Unsigned32,
    juniSdxDiskBlockSize                Unsigned32,
    juniSdxDiskUsage                    DisplayString,
    juniSdxDiskShared                   TruthValue,
    juniSdxDiskRate                     Unsigned32,
    juniSdxDiskSMARTCapable             TruthValue,
    juniSdxDiskSMARTMIRE                Integer32,
    juniSdxDiskSMARTExceptionCtrl       TruthValue,
    juniSdxDiskSMARTPerfEnabled         TruthValue,
    juniSdxDiskErrorCount               Counter32
}

juniSdxDiskChannel OBJECT-TYPE
    SYNTAX              Integer32 (1..'7fffffff'h)
    MAX-ACCESS          read-only
    STATUS              current
    DESCRIPTION
        "The SCSI channel number of the disk."
    ::= { juniSdxDiskEntry 1 }

juniSdxDiskId OBJECT-TYPE
    SYNTAX              Integer32 (1..'7fffffff'h)
    MAX-ACCESS          read-only
    STATUS              current
    DESCRIPTION
        "The SCSI device ID of the disk."
    ::= { juniSdxDiskEntry 2 }

juniSdxDiskLogicalUnit OBJECT-TYPE
    SYNTAX              Integer32 (1..'7fffffff'h)
    MAX-ACCESS          read-only
    STATUS              current
    DESCRIPTION
        "The SCSI device logical unit number of the disk."
    ::= { juniSdxDiskEntry 3 }

juniSdxDiskSize OBJECT-TYPE
    SYNTAX              Unsigned32
    UNITS               "blocks"
    MAX-ACCESS          read-only
    STATUS              current
    DESCRIPTION
        "The number of blocks available on the SCSI device."
    ::= { juniSdxDiskEntry 4 }

juniSdxDiskBlockSize OBJECT-TYPE
    SYNTAX              Unsigned32
    UNITS               "bytes"
    MAX-ACCESS          read-only
    STATUS              current
    DESCRIPTION
        "The number of bytes for each block on the SCSI device."
    ::= { juniSdxDiskEntry 5 }

juniSdxDiskUsage OBJECT-TYPE
    SYNTAX              DisplayString
    MAX-ACCESS          read-only
    STATUS              current
    DESCRIPTION
        "The usage of the SCSI device. It may have one of the following values:
        Detached:
            When a disk is detached, it is not available for use.
        DOS:
            The device was prepared for use (initialized) with MS-DOS partitions.
        Initialized:
            The device was prepared for use (initialized) with arrays.
        Not Initialized:
            The device was not prepared for use (initialized) with arrays.
        Offline:
            The SCSI device was present at boot time. However, the device is either
            removed from the controller or it failed.
        Unowned:
            The controller does not own the SCSI device.          
        "
    ::= { juniSdxDiskEntry 6 }

juniSdxDiskShared OBJECT-TYPE
    SYNTAX              TruthValue
    MAX-ACCESS          read-only
    STATUS              current
    DESCRIPTION
        "The value is true if the device resides on a shared channel and the value
        is false if the device does not reside on a shared channel."
    ::= { juniSdxDiskEntry 7 }

juniSdxDiskRate OBJECT-TYPE
    SYNTAX              Unsigned32
    UNITS               "megabytes/seconds"
    MAX-ACCESS          read-only
    STATUS              current
    DESCRIPTION
        "The negotiated speed of the SCSI device."
    ::= { juniSdxDiskEntry 8 }


juniSdxDiskSMARTCapable OBJECT-TYPE
    SYNTAX              TruthValue
    MAX-ACCESS          read-only
    STATUS              current
    DESCRIPTION
        "The value is true if the device is S.M.A.R.T. capable or false if the device
        is not S.M.A.R.T. capable."
    ::= { juniSdxDiskEntry 9 }

juniSdxDiskSMARTMIRE OBJECT-TYPE
    SYNTAX              Integer32
    MAX-ACCESS          read-only
    STATUS              current
    DESCRIPTION
        "The value of Method of Informational Exceptions (MRIE) of the device."
    ::= { juniSdxDiskEntry 10 }

juniSdxDiskSMARTExceptionCtrl OBJECT-TYPE
    SYNTAX              TruthValue
    MAX-ACCESS          read-only
    STATUS              current
    DESCRIPTION
        "The value is true if S.M.A.R.T. exception control reporting is enabled or
        false if it is disabled."
    ::= { juniSdxDiskEntry 11 }

juniSdxDiskSMARTPerfEnabled OBJECT-TYPE
    SYNTAX              TruthValue
    MAX-ACCESS          read-only
    STATUS              current
    DESCRIPTION
        "The value is true if performance is enabled or false if performance is
        disabled. If performance is enabled, S.M.A.R.T performs exception reporting
        as long as performance is not an issue. If performance is disabled,
        exceptions are reported according to the MRIE mode regardless of performance
        issues."
    ::= { juniSdxDiskEntry 12 }

juniSdxDiskErrorCount OBJECT-TYPE
    SYNTAX              Counter32
    MAX-ACCESS          read-only
    STATUS              current
    DESCRIPTION
        "The number of errors that S.M.A.R.T. encountered on the disk."
    ::= { juniSdxDiskEntry 13 }
    
-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- Disk Usage Table
-- This table reveals some information about C-series partition disk.
-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

juniSdxDiskUsageTable          OBJECT-TYPE
    SYNTAX                             SEQUENCE OF JuniSdxDiskUsageEntry
    MAX-ACCESS                 not-accessible
    STATUS                     current
    DESCRIPTION
        "A list of disk usage entries."
    ::= { juniSdxChassisObjects 3 } 

juniSdxDiskUsageEntry          OBJECT-TYPE
    SYNTAX                         JuniSdxDiskUsageEntry
    MAX-ACCESS                 not-accessible
    STATUS                         current
    DESCRIPTION
        "An entry of disk usage table."
    INDEX       { juniSdxDiskUsageIndex }
    ::= { juniSdxDiskUsageTable 1 }

JuniSdxDiskUsageEntry ::= SEQUENCE {
    juniSdxDiskUsageIndex             Integer32,
    juniSdxFileSystemName             DisplayString,
    juniSdxDiskPath                   DisplayString,
    juniSdxDiskUsedPercentage         Integer32,
    juniSdxDiskTotalSpace             Gauge32
}

juniSdxDiskUsageIndex        OBJECT-TYPE
    SYNTAX                   Integer32(0..65535)
    MAX-ACCESS               read-only
    STATUS                   current
    DESCRIPTION
        "The index of the entry."
    ::= { juniSdxDiskUsageEntry 1 }


juniSdxFileSystemName        OBJECT-TYPE
    SYNTAX                   DisplayString
    MAX-ACCESS               read-only
    STATUS                   current
    DESCRIPTION
        "The name of file system."
    ::= { juniSdxDiskUsageEntry 2 }

juniSdxDiskPath              OBJECT-TYPE
    SYNTAX                   DisplayString
    MAX-ACCESS               read-only
    STATUS                   current
    DESCRIPTION
        "Path where disk is mounted."
    ::= { juniSdxDiskUsageEntry 3 }

juniSdxDiskUsedPercentage    OBJECT-TYPE
    SYNTAX                   Integer32
    UNITS                    "%"
    MAX-ACCESS               read-only
    STATUS                   current
    DESCRIPTION
        "The percentage used of this file system."
    ::= { juniSdxDiskUsageEntry 4 }

juniSdxDiskTotalSpace       OBJECT-TYPE
    SYNTAX                  Gauge32
    UNITS                   "megabytes"
    MAX-ACCESS              read-only
    STATUS                  current
    DESCRIPTION
        "The Total space of the file system or partition."
    ::= { juniSdxDiskUsageEntry 5 }
 

-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- Conformance information
-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

juniSdxChassisCompliances OBJECT IDENTIFIER ::= { juniSdxChassis 2 }
juniSdxChassisGroups      OBJECT IDENTIFIER ::= { juniSdxChassis 3 }

-- compliance statements

juniSdxChassisGroup OBJECT-GROUP
    OBJECTS {
    -- Operating table
    juniSdxOperatingIndex,
    juniSdxOperatingLocation,
    juniSdxOperatingSensor,
    juniSdxOperatingValue,
    juniSdxOperatingUnits,
    juniSdxOperatingStatus,
    juniSdxOperatingIntValue,
        
    -- Disk table
    juniSdxDiskChannel,
    juniSdxDiskId,
    juniSdxDiskLogicalUnit,
    juniSdxDiskSize,
    juniSdxDiskBlockSize,
    juniSdxDiskUsage,
    juniSdxDiskShared,
    juniSdxDiskRate,
    juniSdxDiskSMARTCapable,
    juniSdxDiskSMARTMIRE,
    juniSdxDiskSMARTExceptionCtrl,
    juniSdxDiskSMARTPerfEnabled,
    juniSdxDiskErrorCount,
    
    -- Disk usage table
    juniSdxDiskUsageIndex,
    juniSdxFileSystemName,
    juniSdxDiskPath,
    juniSdxDiskUsedPercentage,
    juniSdxDiskTotalSpace 
    }
    STATUS  current
    DESCRIPTION
        "A collection of management objects pertaining
        to system management capabilities in SDX."
        ::= { juniSdxChassisGroups 1 }

juniSdxChassisCompliance MODULE-COMPLIANCE
        STATUS  current
        DESCRIPTION
                "The compliance statement for entities which implement
                the SDX MIB."
        MODULE  -- this module
                MANDATORY-GROUPS { juniSdxChassisGroup }
        ::= { juniSdxChassisCompliances 1 }

END